package com.jielin.handling.mapper.unit;

import com.jielin.handling.entity.police.PoliceMan;
import com.jielin.handling.entity.unit.Organization;
import com.jielin.handling.entity.unit.OrganizationVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface UnitMapper {

    Organization findUnitInfoById(String id);// 根据单位id查询单位信息

    List<Organization> findChildUnitInfoById(String id);// 根据单位id查询子单位信息

    int addUnitInfo(Organization organization);// 新增单位信息

    int updateUnitInfo(Organization organization);// 修改单位信息

    int updateUnitIsDeleteInfo(Organization organization);// 修改单位是否删除

    PoliceMan findAdminInfoByUnitId(@Param("organizationId") String organizationId, @Param("roleName") String roleName);//查询单位的账号信息

    Organization findUnitInfoByCode(String unitCode);// 根据单位id查询单位信息

    int findChildUnitNumById(String id);// 查询是否有子单位

    /**
     * 获取没有上级单位id的单位
     *
     * @return
     */
    List<Organization> findUnitInfoBySuperiorIdIsNull();

    /**
     * 根据单位编号查询父id
     *
     * @param handleUnitCode
     * @return
     */
    String findParentIdByUnitCode(String handleUnitCode);

    /**
     * 修改父id
     *
     * @param organization
     * @return
     */
    int updateUnitSuperiorId(Organization organization);

    /**
     * 获取所有新增的单位信息
     *
     * @return
     */
    List<Organization> findUnitINfoIsNew();

    /**
     * 修改单位为不是新增单位
     *
     * @param organization
     * @return
     */
    int updateUnitIsNew(Organization organization);

    /**
     * 根据人员id数组查询单位名称
     *
     * @param policeIdArray 人员id数组
     * @return
     */
    String findUnitNameByPoliceId(String[] policeIdArray);


    /**
     * 根据单位编号查询注册码是否过期
     *
     * @param unitCode 单位编号
     * @return
     */
    Map<String, Object> findRegistrationCode(String unitCode);

    /**
     * 查询所有单位信息
     *
     * @return
     */
    List<OrganizationVo> findAllUnitInfo();

    List<OrganizationVo> findChildByUnitcode(String handleUnitCode);
}
